

const {ccclass, property} = cc._decorator;

@ccclass
export default class BaseAnimation extends cc.Component{


    @property
    count: number = -1;

    @property
    actionName: string = 'anim'

    @property
    autoPlay: boolean = true;

    //动画实例，不同的动画类型不同。
    protected animation:any;

    //帧事件回调函数
    protected eventCallback: Function;

    //动作结束回调函数。
    protected finishCallback: (actionName: any)=>void ;



    protected initFlag: boolean  = false;

    setCount(count:number){
        this.count = count;
    }

    getActionName(){
        return this.actionName;
    }

    setActionName(name:string){
        this.actionName = name;
    }


    setAutoPlay(flag:boolean){
        this.autoPlay = flag;
    }

 
    /**
     * -1 表示使用配置文件中的默认值;
	 *	0 表示无限循环
	 *	>0 表示循环次数
     * 播放动画
     * @param actionName 动作的名称
     * 
     * @param count 
     */
    play(actionName?: string,count: number = 0){

    }

    /**
     * 
     * @param func 帧事件触发回调。
     */
    setEventCallback(func){
        this.eventCallback = func;
    }

    /**
     * 
     * @param func 动作播放完毕的回调
     */
    setFinishCallback(func:(actionName: string)=>void ){
        this.finishCallback = func;
    }


    onFinished(){
        // cc.log(' animation finish ')
        if(this.finishCallback){
            this.finishCallback(this.actionName)
        }
    }

    /**
     * 暂停
     */
    pause(){

    }

    /**
     * 恢复
     */
    resume(){

    }

    /**
     * 停止
     */
    stop(){

    }

}
